#include "Int16.h"

Int16::Int16(short valor) {
    this->_valor = valor;
    this->_punteroADato = &_valor;
}

Int16::Int16(string valor) {
    this->_valor = atoi(valor.c_str());
    this->_punteroADato = &_valor;
}

Int16::Int16(void* punteroADato){
    this->_punteroADato = punteroADato;
}

void Int16::comparar(TipoDeDato& tipoDeDato,ostream& out) {
    short* otroValor = (short*) tipoDeDato.damePunteroADato();
    if ( _valor != *otroValor )
        out << "Se esperaba " << _valor << " y se obtuvo " << *otroValor << " . Diferencia: " << _valor - (*otroValor) << endl;
}

short Int16::dameValor() {
    return this->_valor;
}

ClaseDeDato Int16::getClass() {
    return C_INTEGER_16;
}
